package services.impl;

import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import services.RodamientoService;
import dao.RodamientoDAO;
import entities.Rodamiento;
import entities.RodamientoStock;

@Stateless
public class RodamientoServiceBean implements RodamientoService{

	@EJB
	private RodamientoDAO rodamientoDAO;
	
	@Override
	public int disminuirStock(Integer cantidad, RodamientoStock rodamiento) {
		int stockFaltante = cantidad - rodamiento.getStock();
		if(stockFaltante > 0){
			rodamiento.setStock(0);
		}else{
			rodamiento.setStock(rodamiento.getStock()-cantidad);//Le sdescuento el stock facturado
		}
		rodamientoDAO.merge(rodamiento);
		return stockFaltante;
	}
	
	@Override
	public void delete(Object id) {
		rodamientoDAO.delete(id);
	}

	@Override
	public List<Rodamiento> findAll() {
		return rodamientoDAO.findAll();
	}

	@Override
	public Rodamiento findByID(Object id) {
		return rodamientoDAO.findByID(id);
	}

	@Override
	public void persist(Rodamiento entity) {
		rodamientoDAO.persist(entity);
	}

	@Override
	public Rodamiento merge(Rodamiento entity) {
		return rodamientoDAO.merge(entity);
	}

	@Override
	public Integer obtenerStock(Rodamiento rodamiento) {
		Integer stock = rodamientoDAO.obtenerStock(rodamiento);
		if(stock == null){
			return 0;
		}else{
			return stock;
		}
	}

	@Override
	public Rodamiento find(Rodamiento rodamiento) {
		return rodamientoDAO.find(rodamiento);
	}

	@Override
	public Boolean existeRodamiento(Rodamiento rodamiento) {
		Rodamiento rodamientoObtenido = this.find(rodamiento);
		if(rodamientoObtenido == null){
			return false;
		}else{
			return true;
		}
	}

	@Override
	public RodamientoStock findRodamientoStock(Rodamiento rodamiento) {
		return rodamientoDAO.findRodamientoStock(rodamiento);
	}

}
